package map;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class MapDemo2 {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("a", 1);
        map.put("b", 2);
        map.put("c", 3);
        map.put("d", 4);
        System.out.println(map);
        map.put("a", 5);
        System.out.println(map);

        /*
        Set<String> keySet()
        将map中所有的key以一个Set集合的形式返回
         */
        Set<String> keySet = map.keySet();
        for (String key : keySet) {
            System.out.println(key + ":" + map.get(key));
        }
        /*
        遍历每一组键值对
        Set<Entry> entrySet = map.entrySet();
        将当前Map中所有的键值对以若干的Entry实例表示，并将他们以一个Set集合返回
         */
        Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
        for (Map.Entry<String, Integer> entry : entrySet) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }

        /*
        Collection values()
        将map中所有的value以一个集合的形式返回
         */
        Collection<Integer> values = map.values();
        for (Integer value : values) {
            System.out.println(value);
        }

//        values.forEach(e-> System.out.println(e));
        values.forEach(System.out::println);

        map.forEach((k, v) -> System.out.println(k + ":" + v));
    }
}
